Much work has been done in the recent years regarding the development of high-speed, high-quality data processing printers. A considerable fraction of this work has gone into the development of laser-type print engines. These print engines have a specially adapted laser with a beam that can be rapidly turned on and off to generate a raster type scan line composed of pixels, or dots, across a photoconductive surface. The adjacent scans of the laser beam are located within close proximity to each other so that when the surface is completely scanned a full, accurate depiction of the image to be produced is projected on the surface. A paper printout of the image may then be produced by conventional xerographic techniques.
The advantage of using a laser-type print engine is that the pixel density can be quite high. A laser-type print engine can produce 90,000 or more pixels per square inch of output image. This makes it possible to produce figures and characters of extremely high quality, equal to those produced by much slower conventional printers with typewriter type impacting keys. Another advantage laser printers have over conventional printers is that they are not limited to printing only the figures contained on the type keys. The laser beam may be used to form a raster image of almost any combination of pixels desired. This is a desirable feature to have on a printer when printing either a business or technical document that includes irregularly shaped figures such as graph lines or scientific symbols.
One problem with laser printing technology is that large amounts of print command data must be processed by the printing system at a very high rate of speed. This is because it is necessary for the printing system to almost simultaneously receive the output data from the processor to be printed, convert the data into pixel image form readable by the print engine, and transmit the pixel print commands in the appropriate sequence to the print engine so the laser will be activated at the appropriate times as its beam scans along the photoconductive surface.
Thus, it is necessary to provide a data controller that can properly sequence the flow of data from the main processor, convert it to print engine-readable pixel form, and transmit the pixel data to the print engine.
Currently, there are two approaches to data controller design. One approach uses a band buffer where a block of data is received by the controller, converted into pixel form, and stored in a buffer where it can be read by the print engine. A disadvantage of this system is the storage buffer is too small to store all of the pixel data necessary for some complex graph and symbol imagery. Thus, these controllers are of limited utility.
Alternatively, the data controller may have a bit memory system. These controllers are provided with at least one full page bit memory map that is representative of the data to be retrieved, and for scanning by the print engine. Processing circuitry within the data controller is required to analyze the input instruction from the main processor so as to be able to generate a set of pixel instructions readable by the print engine that are representative of the image to be printed and stores them in the bit map. The completed bit map is in effect an electrical representation of the printed image that is to be produced. When the print engine is available to accept the pixel print instructions it accesses the bit map for them and uses them as print engine commands in order to produce the desired image.
One requirement of this processing circuitry is that it be able to thoroughly and efficiently generate all the combinations of print instructions that the main processor is capable of generating and the print engine is capable of following. Some of these instructions can be rather complicated. For example, a particular program within the main processor may require a complex graph or drawing to be generated. The image generated may have a number of overlapping lines or complex shapes. When the print engine accesses the bit map to receive the pixel instructions it does so serially, that is one pixel in a line after another. Thus, the pixel representiation of the image must be fully composed on at least each scan line within the bit map before the print engine has access to the scan line. Thus, a need exists to have a processor that accepts print command data from a main processor and converts it into pixel instructions so as to generate at least one line of complete instructions that can be read by a print engine. This would allow the print engine to read the complete line so as to produce a complete scan line on the photoconductive surface, that when taken together with the other complete scan lines, would produce a representation of the image desired.